package com.zpf.service.impl;

import com.zpf.dao.UserDao;
import com.zpf.dao.impl.UserDaoImpl;
import com.zpf.pojo.User;
import com.zpf.service.AdminService;
import com.zpf.utils.Constants;
import com.zpf.utils.MD5Utils;

public class AdminServiceImpl implements AdminService {
    @Override
    public User login(String username, String password) {
        //1.g根据用户名，调用dao查询
        UserDao userDao = new UserDaoImpl();
        User user = userDao.findByUserName(username);
        //2.判断用户是否存在，不存在则返回null

        if (user == null) {
            return null;
        }
        //3.判断用户名是否为管理员，不是返回null
        if(Constants.ROLE_ADMIN != user.getRole()){
            return null;

        }

        //4.判断用户状态是否可以，1可用，不可用放回null
        if(!Constants.USER_ACTIVE.equals(user.getStatus())){
           return null;
        }
        //5.判断密码，加密算法MD5不可逆加密，也就是明文加密后形成密文，密文无法还原成明文
        String md5PassWord = MD5Utils.md5(password);
        if(user.getPassword().equals(md5PassWord)){
            return user;
        }

        //6.其他情况返回false
        return null;
    }
}
